package com.smartcampusbackend.mapper;

import com.smartcampusbackend.model.ActivitySignup;
import com.smartcampusbackend.model.ActivitySignupDetail;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import java.util.List;

@Mapper
public interface ActivitySignupMapper {
    int insertSignup(ActivitySignup signup);
    List<ActivitySignup> selectSignupsByActivityId(@Param("activityId") Integer activityId);
    ActivitySignup selectSignupById(@Param("id") Integer id);
    int updateSignupStatus(@Param("id") Integer id, @Param("status") String status);
    List<ActivitySignup> selectSignupsByPublisher(@Param("publisher") String publisher);
    int countApprovedSignups(@Param("activityId") Integer activityId);
    int deleteSignupsByActivityId(@Param("activityId") Integer activityId);
    
    // 新增：根据学生ID获取报名活动
    List<ActivitySignup> selectSignupsByStudentId(@Param("studentId") String studentId);
    
    // 新增：根据用户ID获取报名活动
    List<ActivitySignup> selectSignupsByUserId(@Param("userId") Integer userId);
    
    // 新增：根据学生ID获取详细报名信息（包含活动信息）
    List<ActivitySignupDetail> selectSignupDetailsByStudentId(@Param("studentId") String studentId);
    
    // 新增：根据用户ID获取详细报名信息（包含活动信息）
    List<ActivitySignupDetail> selectSignupDetailsByUserId(@Param("userId") Integer userId);
    
    // 新增：获取待审批列表
    List<ActivitySignup> selectPendingApprovals(@Param("activityId") Integer activityId);
    
    // 新增：获取审批历史
    List<ActivitySignup> selectApprovalHistory(@Param("activityId") Integer activityId);
    
    // 新增：根据状态获取审批列表
    List<ActivitySignup> selectApprovalsByStatus(@Param("activityId") Integer activityId, @Param("status") String status);
} 